const app = getApp();

// miniprogram/pages/newsDetail/newsDetail.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // downloadFilePath: "",
    // article: "",
    attach: [],
    article: {}
  },

  downloadFile: function(e) {
    // console.log(e.currentTarget.dataset.path)
    wx.cloud.downloadFile({
      fileID: e.currentTarget.dataset.path,
      success: res => {
        // get temp file path
        console.log("下载附件成功", res)
        // 保存文件
        wx.getFileSystemManager().saveFile({
          tempFilePath: res.tempFilePath, // 传入一个本地临时文件路径, http://tmp/开头的
          filePath: wx.env.USER_DATA_PATH + "/" + e.currentTarget.dataset.name, //保存到用户目录/，此处文件名自定义，因为tempFilePath对应的是一大长串字符
          success(tres) {
            console.log('保存附件成功', tres) // res.savedFilePath 为一个本地缓存文件路径
            wx.showToast({
              title: '文件已保存至：' + tres.savedFilePath,
            })
            // 打开文件-只支持office三件套+PDF
            wx.showToast({
              title: '正在打开文件',
              image: "/images/loading.png"
            })
            wx.openDocument({
              filePath: tres.savedFilePath,
              showMenu: true,
              success: fres => {
                console.log('打开附件成功', fres)
              },
              fail: fres => {
                console.log('打开附件失败', fres)
              },
            })
          },
          fail(tres) {
            console.log('保存附件失败', tres) // res.savedFilePath 为一个本地缓存文件路径
          }
        })
      },
      fail: err => {
        // handle error
        console.log("下载附件失败", err)
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    // console.log(options)
    // id=="" 预览页面
    if(options.id == "") {
      var queryBean = JSON.parse(options.attach);
      this.setData({
        imgUrl: options.fileID,
        attach: queryBean,
      })
      console.log(this.data.attach)
    }
    else {
      //根据新闻id在云数据库中查找新闻内容
      let that = this
      wx.cloud.callFunction({
        name: "getNewsById",
        data: {
          id: options.id
        },
        success: res => {
          console.log("调用云函数根据ID获取新闻成功", res)
          that.setData({
            // downloadFilePath: res.result.data.fileID,
            // article: res.result.data.article,
            attach: res.result.data.attach,
          })
          // console.log(that.data.attach)
          // for(let k in that.data.attach) {
          //   console.log(k, ":", that.data.attach[k])
          // }

          // 下载html文件(为了读取其中内容)
          wx.cloud.downloadFile({
            fileID: res.result.data.fileID,
            success: sres => {
              console.log("下载html成功", sres)

              // 4.通过下载附件得到tempFilePath并读取文件内容到result
              let fs = wx.getFileSystemManager()
              // 注意编码格式为'utf-16le'
              let result = fs.readFileSync(sres.tempFilePath, "utf-8")
              // console.log(result)
              // let realresult = app.towxml(result, 'html'); // 新闻为html格式
              let realresult = app.towxml(result, 'markdown');  // 新闻为md格式
              // console.log(realresult)
              // 更新解析数据
              that.setData({
                article: realresult,
              });
              
            },
            fail: sres => {
              console.log("下载html失败", sres)
            },
          })
        },
        fail: res => {
          console.log("调用云函数根据ID获取新闻失败", res)
        }
      })
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})